#pragma once

#include "publicgui_global.h"
#include <QDockWidget>
#include <QVector>

namespace CoreBase
{
	class ActorBase;
}

namespace VrDataCore
{
	class DeviceActor;
	class ProfessionPropertyDefine;
}

class QTreeWidget;
class QMenu;

namespace PublicGui
{
	class PUBLICGUI_EXPORT ProfessionPropertyDockWidget:public QDockWidget
	{
		Q_OBJECT
	public:
		ProfessionPropertyDockWidget(QWidget * parent = 0);
		~ProfessionPropertyDockWidget();

	private:
		QTreeWidget*								_propertyTree;
		VrDataCore::DeviceActor*					_currentDeviceActor;
		QMenu*										_mainMenu;
		QAction*									_actionAddGroup;
		QAction*									_actionRemove;
		QAction*									_actionAddProperty;
		QMenu*										_menuChangeGroup;
		QAction*									_actionRename;
		VrDataCore::ProfessionPropertyDefine*		_professionPropertyDefine;
		QVector<QAction*>							_groupActionVector;
	private slots:
		void slotsChangeSingleSceneObject(QVector<CoreBase::ActorBase*> actorvector);
		void slotsAddGroup(bool);
		void slotsRemove(bool);
		void slotsRename(bool);
		void slotsAddProperty(bool);
		void slotsChangeGroup(bool);
		//void slotsChangeSingleSceneObject(QVector<CoreBase::ActorBase*>);
		void show_contextmenu(const QPoint&);
		void updateStatus();
	};
}